CData API ServerをAmazonLinux2の環境に構築する
はじめに
データアナリティクス事業本部のkobayashiです。
REST API構築ツール CData API Server を下記のエントリではWindowsの環境でAPIサーバーのインストールやドライバのインストールは行っていますが、今回はEC2のAmazonLinux2にインストールしAPIサーバーを立ててみました。
Windows版のCData API Serverのインストール方法やデータソースの設定方法は下記のエントリをご参照ください。
環境
- Amazon Linux 2
- CData API Server - 19.0.7362.0
CData API Serverのインストール
作業の流れは以下になります。
- CData API Serverのインストール
- 起動設定
- adminユーザーのパスワードの変更
- 外部データベースの接続設定
- ドライバのインストール
インストールファイルのダウンロード
Linux版はJava EdtionなのでCData社のサイトからzipファイルを入手します。
CDataAPIServer.zip
がダウンロードできるのでこれをEC2に持っていきます。
インストール作業
Linux版のCData API ServerはJavaで動作するのでまずはじめにJavaをインストールする必要があります。
# yumのupdateを行う $ sudo yum update -y # yumリポジトリからjavaのパッケージを検索する $ sudo yum search java # yumリポジトリからjava-1.8.0-openjdkのパッケージをインストールする $ sudo yum install -y java-1.8.0-openjdk.x86_64
次にCData API Serverをインストールします。
$ cd /home/ec2-user/ $ unzip CDataAPIServer.zip
すると以下のファイルが作成されます。
$ ls -l ./ -rw-rw-r-- 1 ec2-user ec2-user 85075260 2月 27 22:27 apiserver.war -rw-rw-r-- 1 ec2-user ec2-user 18421 2月 27 22:16 readme.htm -rw-rw-r-- 1 ec2-user ec2-user 8301 2月 27 22:16 readme.txt -rw-rw-r-- 1 ec2-user ec2-user 94573315 2月 27 22:28 setup.jar
setup.jar
がセットアップファイルなのでこれを使ってインストールします。
$ sudo java -jar setup.jar
インストールが始まるといくつか質問をされます。
ソフトウェア使用許諾契約書 本ソフトウェア使用許諾契約書(「契約書」)はCDATA とあなたとの間に締結されます。 ... ... さらに、Oracle Corporation はOracle Instant Client ライブラリの特許においてのみ、本契約の第三者受益者です。 (c) ADO.NET Providers およびCDATA FireDAC Components。 press 1 to accept, 2 to reject, 3 to redisplay > 1 <--- accept Select target path [/opt/apiserver] <---- デフォルトで良いのでそのままEnter press 1 to continue, 2 to quit, 3 to redisplay > 1 <--- accept CData API Server 2019J (Java Edition) がシステムに正常にインストールされました。 CData API Server 2019J (Java Edition) を実行しますか? press 1 for YES, 2 for NO, 3 to redisplay > 1 <--- accept
以上でインストールとCData API Serverの実行が完了します。 ここまででCData API Serverが作成されログイン画面にアクセスできますが、先に起動設定やドライバもインストールします。
起動設定
CData API Serverをsystemctlコマンドで管理したいのでsystemdへ登録します。
# アプリケーションディレクトリに移動 $ cd /opt/apiserver/ # systemdに登録するスクリプトを実行 $ ./service # 状態を確認 $ sudo systemctl status apiserver.service # CData API Serverサービスを起動 $ sudo systemctl start apiserver.service # 自動起動設定 $ sudo systemctl enable apiserver.service
adminユーザーのパスワード変更
ブラウザからCData API Serverの設定を行うadminユーザーの設定はアプリケーションディレクトリのapiserverRealm.properties
にありますので、最低限パスワードは変更します。
$ vi /opt/apiserver/apiserverRealm.properties admin:admin,cdata_admin ↓ admin:{パスワード},cdata_admin
外部データベースで各種データの管理設定
アプリケーションデータ、ユーザーデータ、ログデータはローカルのderbyで管理されていますが、こちらも外部データベースで管理したほうが何かと便利なのでローカルのMariaDBで管理する設定をします。
設定ファイルはアプリケーションディレクトリ配下のwebapp/apiserver.xml
なのでこの100行目辺りを修正します。
<!-- By default, APIServer will use a local derby database to store information on the transactions processed, as well as application and access logs. The APP_DB setting may be used to configure a database external to the applicaiton that will be used to store this information. <Call name="setInitParameter"> <Arg>APP_DB</Arg> <Arg>jdbc:mysql:Server=MySQLServer;Port=3306;Database=mysql;User=user;Password=password</Arg> </Call> -->
ここで外部DBへの接続設定がコメントアウトされているのでアンコメントアウトして接続文字列を修正します。
- APP_DB : アプリケーションデータ、ログデータの保存先
- APP_USERS : ユーザーデータの保存先
<!-- By default, APIServer will use a local derby database to store information on the transactions processed, as well as application and access logs. The APP_DB setting may be used to configure a database external to the applicaiton that will be used to store this information. --> <Call name="setInitParameter"> <Arg>APP_DB</Arg> <Arg>jdbc:mysql:Server=127.0.0.1;Port=3306;Database=cdata;User={ユーザー名};Password={パスワード}</Arg> </Call> <Call name="setInitParameter"> <Arg>APP_USERS</Arg> <Arg>jdbc:mysql:Server=127.0.0.1;Port=3306;Database=cdata;User={ユーザー名};Password={パスワード}</Arg> </Call>
今回の設定ではローカルのMariaDBへ保存する設定ですがドライバをインストールし、接続文字列を適切な設定情報で書き換えれば他のデータベースでも各種データを管理できます。
ドライバのインストール
SQLite、Apache Derby、MySQL、Excel以外のデータソースを扱いたい場合にはドライバファイルのインストールが必要です。ドライバはCData社のサイト( CData Drivers )からドライバーの評価版がダウンロードできますのでこれを使用します。なおCData API ServerはJavaで動作しているのでJDBC版のドライバをダウンロードします。 今回は以下の2種類をインストールします。
- Amazon Redshift
- Snowflake
インストール手順は以下の通りです。
- ダウンロードしたドライバファイルをEC2へ送る。
unzip AmazonRedshiftJDBCDriver.zip
で解凍する。sudo java -jar setup.jar
でインストールする。
ソフトウェア使用許諾契約書 本ソフトウェア使用許諾契約書(「契約書」)はCDATA とあなたとの間に締結されます。 ... ... さらに、Oracle Corporation はOracle Instant Client ライブラリの特許においてのみ、本契約の第三者受益者です。 (c) ADO.NET Providers およびCDATA FireDAC Components。 press 1 to accept, 2 to reject, 3 to redisplay > 1 <--- accept Select target path [/home/ec2-user] <---- デフォルトで良いのでそのままEnter ライセンスがアクティベーションされるまでお待ちください。 ライセンスファイルが正しくダウンロードされました。 インストールする機能を選択してください。 [<required>] クラスライブラリ(JARファイル) (CData JDBC Driver for Snowflakeのクラスライブラリをインストールします。) [x] HTMLヘルプドキュメント (CData JDBC Driver for SnowflakeのWindows HTMLヘルプドキュメントをインストールします。) input 1 to select, 0 to deselect: > 1 <--- accept [x] デモアプリケーション (CData JDBC Driver for Snowflakeのデモアプリケーションをインストールします。) input 1 to select, 0 to deselect: > 1 <--- accept ...pack selection done. press 1 to continue, 2 to quit, 3 to redisplay > 1 <--- accept
- 指定したターゲットパスに
cdata.jdbc.redshift.jar
、cdata.jdbc.redshift.lic
,cdata.jdbc.redshift.ini
が作成されるのでこれらをアプリケーションディレクトリのlib
ディレクトリに移動する。
$ mv /home/ec2-user/cdata.jdbc.redshift.* /opt/apiserver/lib/
- Snowflake用のドライバも1-4の手順でインストールする。
以上でドライバファイルのインストールが終わるので後はCData API ServerにブラウザでアクセスすることでAPIが作成できます。
まとめ
CData API ServerのインストールをEC2のAamazon Linux2にインストールしました。Windows版と設定ファイルや設定内容がいくつか変わりますが大差なく構築できると思います。
最後まで読んで頂いてありがとうございました。